package com.eni.dvtejb.metier.sessions;

import java.util.List;

import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.jboss.logging.Logger;

import com.eni.dvtejb.metier.entities.Adresse;

/**
 * Session Bean implementation class AdresseDAO
 */
@Stateless
@Remote(AdresseDAO.class)
public class AdresseDAOImpl implements AdresseDAO {
	
	@PersistenceContext
	private EntityManager em;
	
	private Logger logger =Logger.getLogger(this.getClass());

    /**
     * Default constructor. 
     */
    public AdresseDAOImpl() {
        // TODO Auto-generated constructor stub
    }

	@Override
	public List findAll() {
		return em.createQuery("from Adresse").getResultList();
	}

	@Override
	public List findByRue(String rue) {
		return em.createQuery("from Adresse a where a.rue = :rue").setParameter("rue", rue).getResultList();
	}

	@Override
	public Adresse findById(Integer id) {
		return em.find(Adresse.class,id);
	}

	@Override
	public void save(Adresse adresse) {
		logger.debug("Sauve l'adresse " + adresse);
		em.persist(adresse);
		
		
	}

	@Override
	public void merge(Adresse adresse) {
		em.merge(adresse);
		
	}

	@Override
	public List findByVille(String ville) {
		return em.createQuery("from Adresse a where a.ville = :ville").setParameter("ville", ville).getResultList();
	}

}
